#ifndef ROSCOMMUNICATE_H
#define ROSCOMMUNICATE_H


//#include "gSoapFoundation/stdsoap2.h"
//#include "gSoapFoundation/soapStub.h"
#include "gSoapFoundation/hmigsoapnamespaceStub.h"
#include "gSoapFoundation/hmigsoapnamespaceH.h"
#include <string>
#include <vector>

using namespace std;

class RosCommunicate
{
public:
    RosCommunicate(string remoteServerAddressIn);


public:
    int addMessage( hmigsoapnamespace::UserInfo userInfo,hmigsoapnamespace::Message addMsgLog,int &returnFlag);
//    int feedRosWatchDog(soap*,struct UserInfo userInfo,int flagIn,int &returnFlag);
    int changeRemoteServerAddress(string remoteServerAddressIn);

    int getWheelMoveSpeed(hmigsoapnamespace::UserInfo userInfo,int robotIdIn,
                     std::vector<double>& wheelMoveSpeed);

    int getWheelPathLength(hmigsoapnamespace::UserInfo userInfo,int robotIdIn,
                     std::vector<double>& wheelPathLength);

    int getOdometer(hmigsoapnamespace::UserInfo userInfo,int robotIdIn,hmigsoapnamespace::OdemeterData& odemeterDataReturn);

    int vehicleAuto(hmigsoapnamespace::UserInfo userInfo,int robotIdIn, double xMove, double yMove, double rotate,int &returnFlag);

private:



private:
    bool isInitialStatus;

    /**
     * @brief client_soap           实例化gsoap通信类
     */
    soap client_soap;
    string remoteServerAddress;


};

#endif // ROSCOMMUNICATE_H
